import java.sql.Date;
import java.util.HashSet;

public class Verwaltung {
	
	private HashSet<Event> events = null;
	
	public Verwaltung(){
		events = new HashSet<Event>();
	}
	
	public void addEvent(String type, Date date, int duration, String location, double costs){
		if(type.equals("Probe")){
			events.add(new Probe(date, location, duration, costs));
		}
		
		else if(type.equals("Auftritt")){
			events.add(new Auftritt(date, location, duration, costs));
		}
		
	}
	public String listEvents(String type, Date startDate, Date endDate){
		String temp="";
		
		if(type.equals("Alle")){
			for(Event e: events){
				if(e.checkEvent(startDate, endDate)) temp=temp+e.toString()+"\n";
			}
		}
		else if(type.equals("Probe")){
			for(Event e: events){
				if((e instanceof Probe)&&(e.checkEvent(startDate, endDate)))temp=temp+e.toString()+"\n";
			}		
		}
		
		else if(type.equals("Auftritt")){
			for(Event e: events){
				if((e instanceof Auftritt)&&(e.checkEvent(startDate, endDate)))temp=temp+e.toString()+"\n";
			}	
		}
		
		return temp;
	}
	public double sumCosts(String type, Date startDate, Date endDate){
		
		double temp=0;

		if(type.equals("Alle")){
			for(Event e: events){
				if((e instanceof Probe)&&(e.checkEvent(startDate, endDate)))temp=temp-e.getCost();
				else if((e instanceof Auftritt)&&(e.checkEvent(startDate, endDate)))temp=temp+e.getCost();
			}
		}
		else if(type.equals("Probe")){
			for(Event e: events){
				if((e instanceof Probe)&&(e.checkEvent(startDate, endDate)))temp=temp+e.getCost();
			}		
		}
		
		else if(type.equals("Auftritt")){
			for(Event e: events){
				if((e instanceof Auftritt)&&(e.checkEvent(startDate, endDate)))temp=temp+e.getCost();
			}	
		}
		return temp;
	}	
	
	
}
